Logic networks for realizing associative logic functions



March 7, 1967 R. o. wlNDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS March 7, 1967 R. o. wlNDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS INV NTOR. E?? r /A/ze,

,Vilar/ffy March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS 16 Sheets-Sheet 5 Filed April 19, 1963 March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS Filed April 19, 196s 1e sheets-sheet 4 /VI//A/fdf afer 4/// 75 ifm/wid March 7, 1967 R. o. WINDER LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS 16 Sheets-Sheet 5 Filed April 19. 1963 LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS Filed April 19 March 7, 1967 R. o. WINDER 16 Sheets-Sheet 6 NCQ March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS Filed April 19, 1963 16 Sheets-Sheet 8 A|lll|^ x M PS i NNE mm wh n March 7, 1967 R. o. wlNnr-:R 3,308385 LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS 16 Sheets-Sheet 9 Filed April 19, 196s MKM March 7, 1967 R. o. WINDER 3,308,285

I LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS Filed April 19, 1963 16 Sheets-Sheet l0 March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS 16 Sheets-Sheet 11 Filed April 19, 1963 mu Quwm bm .vn

March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS 16 Sheets-Sheet 12 Filed April 19, 1963 16 Sheets-Sheet l5 R. O. WINDER TIII I I I I.

&0

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS arch 7 Filed April 19,

March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS di /jf 5 if i 4 March 7, 1967 R. o. WINDER 3,308,285

LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS Filed April 19, 1963 16 Sheets-Sheet l5 j /Q /0 /47 /Q (Jg/l) Inv/Wfl 16 Sheets-Sheet 16 R. O. WINDER LOGIC NETWORKS FOR REALIZING ASSOCIATIVE LOGIC FUNCTIONS March 7, 1967 Filed April 19, 1963 P m www y W M a m f f pw E llll D. IIIII |l G G P0 B M Nw C f m .W f fr, m Mm m n i ,a Z R J if G2 #L 1 M m U XZ .Vm

Uited States Patent Ofiee Patented Mar. 7, 1967 This invention relates to logic networks and more particularly to multiple input, multiple output logic networks.

An object of the invention is to provide arrangements of logic elements which are suitable for realizing certain associative logic functions. The term associative implies that the manner of grouping the arguments (inputs in the case of electrical circuits) of the particular function does not affect the -results which are obtained.

Another object of the invention is to provide networks of logic elements for realizing associative logic functions in which the gates making up the networks have reasonable fan-in and fan-out requirements. The term fanin refers to the number of inputs a stage receives and the term fan-out refers to the number of outputs a stage can provide. Examples arev given in the application of networks employing logic gates with maxim-um fan-in and fan-out requirements of 2 to 31. In any such network, the maximum fan-in and fan-out number, identified as m, may be fixed.

A third object of the invention lis to provide a network of associative logic elements in which the number of stages through which a signal passes to produce an output signal is relatively low, so that the number of delay intervals required is relatively low. Specific figures a-re given later.

The invention is discussed in greater detail below and is shown in the following drawings of which:

FIG. 1 is a logic diagram to help explain the term associativity;

FIGS. 2 and 3 are logical diagrams to help explain some of the limitations in present logical circuits;

FIG. 4 is a block circuit diagram of a logic system according to the present invention; l

FIG. 5 is a block circuit diagram of the gates within the blocks of FIG. 3;

FIG. 6 (on two sheets legended FIGS. 6a and 6b, respectively) is a more detailed diagram of the system of FIG. 4;

FIG. 7 (on two sheets legended FIGS. 7a and 7b, respectively) is a block circuit'diagram of a selection circuit which includes OR gates arranged according to the teachings of the present invention;

FIGS. 8, 9 and 10 are logic diagrams which show the relationship between majority gates arranged according to the present invention and the more general associative gates arrangedaccording to the invention;

FIG. 11 (on two sheets legended FIGS. 11a and 1lb, respectively) is a detailed logic diagram of the system of FIGS. 4 and 6. The networks of FIGS. 4, 6 and 11 are identical, however, the gates in FIG. l1 are rearranged so that the reader may see the relationship between FIG. 1l and the carry generator of FIG. 12.

FIG. 12 (on two sheets legended FIGS. 12a and 12b, respectively) is a logic circuit diagram of a majority gate carry generator according to the present invention;

FIG. 13 (on two sheets legended FIGS. 13a and 13b, respectively) is a logic circuit diagram of another majority gate carry generator according to the present invention;

FIG. 14 is a block circuit diagram of the same generator as shown in FIG. 13 to illustrate the'positions of the gates within the various groups; 'i

FIG. 15 is a generalized logic circuit diagram of a group of stages arranged according to the invention in which the fan-in and fan-out number is m, where m may be any desired value; and

FIG. 16 is a generalized showing of a network of associative gates for `solving Equations 2-5 which appear below, where m, the fan-out number and n `the numberv of inputs and outputs are any arbitrary values desired.

The problem dealt with in the p-resent linventionis that of realizing a set of given associative functions. Throughout the discussion which follows, is the symbol employed to represent an associative operation. In mathematical terms, associativity may be defined by the following equation: v

a* (b*c)=(a*b)*c (1) Put into words, the equation above says that the manner of grouping the arguments is immaterial, that is, it does not affect thev result which is obtained.

The concept above is illustrated in FIG. 1. The gates shown there are AND gates as they fall within the class of associative gates. In the left figure the two inputs (arguments) b and c are applied to the top gate 9 and the two inputs a and bc are applied to the bottom gate 11. In'the right figure, the top gate 9a receives the inputs a and b whereas the bottom gate 11a receives4 inputs ab and c. The outputs d produced by the tw-o networks are the same even though the inputs have been grouped differently.

Some examples, other than AND functions, of associative functions are OR, exclusive OR, equivalence, multiplication of matrices, and so on.

The specific problem dealt with in the present application is that 'of realizing the following associative functions:

Put into words, Equation 3 says that y2 is an associative function of x1 and x2, where x1 and x2 are input variables. If the specific type of function were OR, Equation 3 would be y2=xf+x2- Equation 5 says'that yl1 is an associative function of x1 through xn.

If practical, physically realizible gates were available which 'could accept n inputs, any one of the functions of Equations 2-5 easily could be realized by a single gate such'as shown in FIG. 2. (In FIG. 2 and in the remaining figures an associative gate is represented by an asterisk within a rounded-offy rec-tangle.) In practice, however, the fan-in to `any gate is limited. Therefore, it is standard procedure, in the case in which the fan-in is excessive, to substitute for a single gate a tree network of such gates. As .an example, in thecase in lwhich only three input associative gates are availableand there `are nine inputs x1-x9 which must be handled, a network of the type such as in FIG. 3 may be employed. This network includes four gates. Each of the top three gates receive 3 inputs and the fourth gate receives inputs from the top threejgates. y

In more general terms, mj inputs are handled in j levels, using m-l l p m 1 associative gates When n is not a power of m, t-he formula still holds; since each gate in effect replaces mv input leads by one output lead, and since n original input leads have to be reduced to one final output lead, the number of gates needed is just (n-l) divided by (m-1). .It can be shown that the number of gates G which would be required by use of trees to realize all yof the ys of Equations 2-5 would be approximately j Here, n refers to the number of arguments (the number of inputs) and m refers to the -maximum fan-in and fanout number which is permissible.

From the Equation a above, it becomes quite clear t'hat'the solution illusrated in FIG. 3 uses a large number of gates. One can try combining separate networks in different ways in order to reduce the number of gates. However, in one met-hod of combinin-tg, it -turns out that the fan-out requirements of the gates are increased enormously. The fan-out problem can be somewhat .alleviated by adding trees of amplifiers at the outputs Of the gates. However, this adds more elements as well as addi-tional stages of delay. l

To sum up 'what has been discussed briefly above, the various solutions proposed heretofore for solving the problem set forth in Equations 2-5, in which n may be a relatively large number, are not practicallfr one or more of the following reasons:

(l) The fan-in becomes too large.

(2) The number of gates becomes too great.

(3) The number of stages of delay becomes too great. (4) The fan-out becomes too large.

time an input signal x is applied and an output signal y is produced is logm n+1 where refers to the smallest integer greater than or equal to the term within this bracket. Finally, the network hasY a uniform and regular design which is readily realized in practice.

The network itself is shown in FIGS. 4, 5 and 6. The showing is generalized in the sense that the gates are associative gates. However for the sake of illustration, a specific m and n have been chosen (m'=3, 11:35), where again m equals the maximum fan-in and fan-out number and n equals the number of inputs (arguments).

In the discussion of the invention which follows, first a brief description is given of FIGS. 4, 5 and 6 and -t-hen an analysis, in mathematical terms, is given of the interrelationship among the various elements in the figures. Thereafter, to illustrate the 4usefulness of the networks in these figures, a number of examples of networks employing more specific logic gates are given. In one, the associative gates are OR gates and the network is a selection network. (A definition of a selection network is given later.) In other examples, the gates employed are majority gates and the networks are carry generators (networks used in adders). It is to be understood that these examples are n-ot meant to be exhaustive of the uses of the associative gate networks of the invention.

In the three FIGURES 4, 5 and 6, the inputs to the network are legended` x followed by a subscript. There are a total of inputs (n=35), legended .r1-x35. The outputs are legended y and there are also 35 of these legended y1-)135. The superscripts applied to certain of the letters are for purpose of identification and do not indicate that any input is raised -to a power. For example, xgf) refers to a signal which is applied by group 3 (group refers to a number of stages such as shown in FIG. 5) in column l to group l in column 2. Equations given below further identify these signals and others.

The gates within each group are shown generally in FIG. 5. As a general proposiiton, the number of stages (gates plus amplifiers) in a group is equal to m-i-l. In the present case, since m=3 there are four stages in a Cil group. Of these stages three are associative gates and the fourth (the bottom stage) is an amplifier. The amplifier performs the identi-ty logic function. Put ano-ther Way, the purpose of the amplifier is to satisfy fan-out requirements.

From the rules given in FIG. 5, it should be clear that the groups 2-11 in column 1 of FIG. 4 each contain the same number of gates. Group l in each column omits the bottom stage (amplifier R in FIG. 5) and the lines Q. In addition, in group 1 in each column, gate S is converted to an amplifier. (As a general rule, any stage which has only one input becomes an amplifier regardless of the group the stage is in.)

The second rule appearing in FIG. 5 is that the topmost gate W is removed from the topmost block in each column of FIG. 4 except in the last column. Further, any amplifier in column l of FIG. 4 may be eliminated if not needed for purposes of fan-out. An example of this is given later in connection with the selection circuit of FIG. 7.

In the generalized showing of FIG. 5, letter subscripts and superscripts are applied to the inputs and outputs x and y, respectively. For example, gate S receives an input xmhqm. To illustrate, in the case of x1 then =0 and j=0. This causes x1m+1() to reduce to x1, since when j is a ii the superscript may be omitted entirely. As -another example, one of the leads going to gate T is legended ximtzf). In the case in which i=1 and m=3 and jzt), this x reduces to x5. In FIG. 6 it can 'be seen that x5 is an input to gate ZTI.

The term k which is used in some of the following equations is a constant whose value depends upon m and n. The equations are max n:mk+1+mk1 so that The num-ber of columns in a network is equal to k+1. Accordingly, it can be seen that in the circuit of FIGS. 4, 5 and 6, k is equal to 2.

The network of FIGS. 4, 5 and 6 can be seen by inspection to satisfy the Equations 2 and 3 previously given. It is clear from FIG. 6 that y1 =xl. Further, the output y2 produced by the associative gate ITI is xfxz. In the equations which follow, it will be shown that Equations 4 and 5 are also satisfied. In relating these equations to the system, it will be helpful for the reader to refer mainly to FIG. 6.

1Fra

The brackets in Equation 9a mean that r1 is an integer, any fraction remaining where n is divided 'by m being dropped. In the present example,V

The procedure above maybe continued for j=1, 2 until, for Some value of j; rjis equal to or less than m. Suppose the first suchj is k, as previously defined. (Note thatnl rk m). Then it is not necessary to define any where 1 rk Sm. Now, with the values of x100 defined above, and Working in the reverse direction:

(Except that some of the y1@ may not be needed, in which case they may be dropped) Where, again, yifk-l) are defined as far as they are needed below. In general the yi@ vare definedv analogously.

(Where ql and 0Sr m). The )11(0) are the desired outputs, as follows: (Recall that the x10). A special first block:

(Proof: Note that each xi@ is defined as the result of the l operation over a span of mj of the original input xs:

, xiizimmkflzinieff- (39) Therefore each yN) is defined as the result of the operation over all of the original input xs up to xim:

Thus the yio) are indeed the desired outputs.

To summarize the above, it has been shown form-ally that the network of the form illustrated in FIGS. 4, 5 and 6 does in fact satisfy the requirements set forth in Equations 2-5. Any y one wishes to choose is an associative function of the x of equal rank and all xs of lower rank. )For example, if one chooses ym, the equation above says that it is an associative function of xl-xm or, in equation form:

The Iamplifiers A in FIG. 6 )are to provide fan-out to the left in the network. For example, an amplifier such as 182 (Column 2, group 1(1)) has a fan-out of 3, that is, one output for gate 2T1, a second output for gate 2S1 and a third output for amplifier 2R1. It is needed because x10) must be applied to more than 3 stages. If y3 (which is logically equal to ylu) has to be applied to only one stage, then amplifier 2R1 may be eliminated. On the other hand, if y3 must be applied to two or three stages, then the amplifier 2R1 must be included. It might also be mentioned that both in FIG. 6 yand in the remaining figures, any amplifier can be omitted if the gate preceding the amplifier is made to have a fan-out which is sufficiently largerthan m. For example, gate 1W1 of FIG. 6 is assumed to have a fan-out of 3 but it must supply outputs to 4 logic stages and it must'also provide the signal ya. Therefore, if gate 1W1`is instead designed to have a fan-out of 4, amplifier 182 may be eliminated. And, if gate 1W1 is instead designed to have a fan-out of 5, amplifiers 182 and 2R1 may be eliminated, prokvided y3 is needed for only one stage.

From the discussion above, it is seen that the number of gates in the circuit is reasonably small considering the number of inputs. FIG. 6 shows that the maximum delay between an input signal and an output signal derived therefrom is that imparted by 5 stages, also a reasonable value. For example, in obtaining )228, the delays will include those inserted by a gate in column 1, a gate in column 2, a gate in column 3, a second gate in column 2 and a second gate in column 1. Increasing the number of inputs increases the number of delays. However, the increase in the number of gates is at a relatively low rate as indicated by Equation 6 and the increase in the number of stages of delays is logarithmic with respect to n (see Equation 6a).

One practical use of the system of the present invention is illustrated in FIG. 7. This circuit is a selector circuit and is implemented with a matrix of OR gates arranged in the manner discussed in detail above. The y outputs are applied to inhibit terminals of AND gates.

In the circuit of FIG. 7, the inputs .r1-x27 may be signals appearing on lines. A signal at one level represents the binary bit l and a signal -at a second level represents the binary bit 0. The signals present on the line are employed in a computer controlled automatic communications system to indicate precedence of messages which are to be processed, and accumulated in storage devices such as registers (not shown). For example, the line carrying the signal x1 represents the storage in the x1 register (not shown) of a message of highest precedence. The presence of a signal x2=1 on the following line represents the storage in the x2 register (not shown) of a message of next lower precedence and so on.

The purpose of the circuit of FIG. 7 is to sense the lines carrying the signals, hereafter termed active lines, in sequence. However, the circuit jumps from one active line to the next active line, skipping any lines that are inactive, in order to save time. When a line is active, the circuit produces a read-out signal RO. This readout signal is applied to the register (not shown) associated therewith at the time a timing pulse TP-l occurs. The read-out signal commands the register to be read out and the data to be processed, whereupon the x signal associated with that register changes from 1 back to 0.

In the system of FIG. 7, the maximum fan-out assumed is 111:3. n, the number of inputs assumed, is 27. The amplifiers in column l are omitted as they are not needed for fan-out purposes. It will also be shown shortly that the gates SW2 and 1W3 are not needed for the purpose of generating the last read-out signal R027 and could have been omitted, as the rules given state. However, in this particular network they serve a separate purpose, namely, that of indicating whether or not at least one of the input lines is still active, and these gates are therefore retained.

In the system of FIG. 7, group 1 of column 1 consists of 2 OR gates 1T1 and IWI. Groups 2 through 8 of column 1 consist of 3 OR gates each, S, T and W. Group 9 of column l includes 2 OR gates 9Tl and 951. Group 1(1) of column 2 includes 2 OR gates 1T2 and 1W2 and an amplifier 182; group 2(1) of column 2 includes three OR gates 2S2, 2T2 and 2W2, and an amplifier ZRZ; group 3(1) of column 2 includes two OR `gates 3S2 and ST2, an amplifier SR2 and an optional OR gate SW2. The last group, group 1(2) in column 3 includes OR gate lTZ, amplier 152, and the optional OR gate 1W3.

The gates which generate the read-out (RO) signals are AND gates. These are ararnged in groups too. Group 851 includes three AND gates 1t), 12 and 14, two of which 12 and 14 include inhibit input terminals. All of the remaining groups &2 through &9 include three A'ND gates, cach of which has an inhibit terminal.

In the operation of the system of FIG. 7, assume that lines x1, x3, x6 and x25 are active and all remaining lines are inactive. Upon the occurrence of TP-l (which is a periodically generated timing pulse), AND gate 10 is enabled and the read-out signal R01 is produced since x1==1. However, each of the remaining AND gates is disabled by a y=l signal applied to its inhibit terminal. For example, ANDy gate 12 is disabled by the signal y1==x1=l applied to its inhibit terminal; AND gate 14 is disabled by the signal y2=x1+x2=1- In a similar man ner, it can be shown that all remaining AND gates are disablcd.

After the occurrence of TP-1 and R01=1, the register (not shown) associated with x1 is read out and x1 changes to 0. The next TP-l pulse now occurs. x1=0 so that AND gate 10 is disabled. x2 was stated to be 0 so that AND gate 12 is disabled. Therefore, OR gate 1T1 is disabled and y2=t. x3 was stated to be a 1. Therefore, the pulse 'TP-1 causes R03 to Ioccur. But, the x3=1 signal causes all of the ys of equal or greater rank than x3 to be 8 l and these y signals (yg yz) disable all AND gates in groups &2 &9.

When the RO3=1 signal occurs, the register associated with R03 is read out. Upon completion of the read-out, x3 changes to 0. By this time, the second TP-l signal has terminated and all AND gates are again disabled.

In a manner similar to that discussed above, it can be shown that the third TP-l pulse causes R06 to appear and the fourth causes a signal R025 to appear. After the fourth TP-l timing pulse, all of the active lines (only those carrying the signals x1, x3, xs, x25 were active) have been selected and all of the xs are 0.

In the system of FIG. 7, the signal xlu), which is also legended local l, is equal to the OR function x1+x2+x3. In a similar manner, the signal x20) is equal to the OR function x4-l-x5-l-x6. The signal y20) is the OR function of both local l and local 2. The signal x19) is the OR function of locall local 3, that is, x14-x2 -l-xg. Accordingly, this line is labeled CUM (cumulative) 1-3 groups l, 2 and 3).

In general, the higher an OR gate is in its column, the greater the number of xs its output is a function of. The highest OR gate, namely, OR gate 1W3 in column 3, produces the OR function which is the cumulative function .of groups l-9 or, in other words, the cumulative OR function of x1 through x27. Therefore, the output of gate 1W3 is indicative of whether or not any input line still remains active. If this output is a 1 when a TP-l pulse occurs, at least one input line is active. If it is a 0 when a TP-1 pulse occurs, all input lines are inactive.

In the system of FI G. 7, no OR gate receives more Vthan three inputs. Moreover, n.0 OR gate fans-out to more than three other stages. If additional, fan-out is required, an amplifier should be inserted. For example, amplifier 1S?. is inserted, as the output of gate lWZ is required ot fan-out to 5 stages, namely, 2R2, 282, 2T2, 1T2 and 1W3. The delay time added to effect this reduction in fan-in/fan-out requirements, is relatively small. The maximum delay of the system, tha-t is, the maximum time between the selection of an active line and the generation of the corresponding y signal, is five stages of delay.

A more detailed discussion of the selector circuit of FIG. 7 and its uses may be found in application Serial No. 274,089, titled Logic Circuits, filed April 19, 1963, now U.S. Patent No. 3,239,689, issued on March 8, 1966, by the present applicant, Robert O. Winder.

The system of the present invention is also useful when embodied in a carry generator for an adder. In this carry generator, the carries are calculated directly from the inputs rather than by carry ripple. The advantage of this carry generator is its inherently higher speed in view of the fewer stage delays needed to generate the higher order carries. lf one assumes an end-around carry co', then the successive carries are functions. of the two words (xlxz xn) and (ylyz yn) being added, and also of co. The functions formally are Put into words, the equations above say that a carry such as c1 is present when the two corresponding bits of the words being added x1 and y1 are both present or when x1 and co are both present, or when y1 and co are both present.

Let E, be a ternary variable whose 3 val-ues 1, 0 and +1 respectively represent propagate no carry; propa- 

1. IN COMBINATION, (1) A SOURCE OF N INPUT SIGNAL REPRESENTATIONS INDICATIVE OF N ORIGINAL INPUT DIGITS IN A GIVEN ORDER; (2) K+1 COLUMNS OF A GIVEN TYPE OF ASSOCIATIVE GATE MEANS, EACH SAID COLUMN EXCEPT THE LAST COLUMN HAVING AT LEAST 